// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.mall;

import java.util.ArrayList;

//import org.apache.http.util.EncodingUtils;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Base64;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.ZoomDensity;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;

import com.eva.android.widget.BaseActivity;
import com.x52im.rbchat.R;

public class WebPostActivity extends BaseActivity
{
	private WebView webView;

	private String url;

	private byte[] data;

	private LinearLayout progressLL;

	private ProgressBar progressView;

	private Handler mHandler = new Handler();

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);

		setContentView(R.layout.common_payment_web_view);

		initDataFromIntent();
		initView();

		WebSettings webSettings = webView.getSettings();
		webSettings.setJavaScriptEnabled(true);
		webSettings.setSupportZoom(true);
		webSettings.setDefaultZoom(ZoomDensity.FAR);
		webView.setWebViewClient(new mWebViewClient());
		
		webView.addJavascriptInterface(new BackJavaScriptInterface(), "mBack");
		
		webView.setWebChromeClient(new WebChromeClient()
		{
			@Override
			public void onProgressChanged(WebView view, int position)
			{
				progressView.setProgress(position);
				System.out.println("==========" + position);
				if (position > 80)
				{
					progressLL.setVisibility(View.GONE);
				}
				super.onProgressChanged(view, position);
			}
		});

		System.out.println(url);
		System.out.println(data);
		webView.postUrl(url, data);
	}

	final class BackJavaScriptInterface
	{

		BackJavaScriptInterface()
		{
		}

		/**
		 * This is not called on the UI thread. Post a runnable to invoke
		 * loadUrl on the UI thread.
		 */
		public void clickOnAndroid()
		{
			mHandler.post(new Runnable()
			{
				public void run()
				{
//					webView.loadUrl("javascript:wave()");
					if (webView.canGoBack())
					{
						if (webView.getUrl().toLowerCase().contains("st=completed"))
						{
							setResult(Activity.RESULT_OK);
							WebPostActivity.this.finish();
						}
						else
							webView.goBack(); // goBack()表示返回WebView的上一页面
					}
				}
			});

		}
	}

	private class mWebViewClient extends WebViewClient
	{
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url)
		{
			view.loadUrl(url);
			return true;
		}
	}

	private void initDataFromIntent()
	{
		ArrayList datas = IntentFactory.parseWebPostActivityIntent(getIntent());
		url = (String) datas.get(0);
//		data = EncodingUtils.getBytes((String) datas.get(1), "BASE64");
        data = Base64.encode(((String) datas.get(1)).getBytes(), Base64.DEFAULT);
	}

	private void initView()
	{
		webView = (WebView) findViewById(R.id.view_web_webview);
		progressView = (ProgressBar) findViewById(R.id.web_view_progressBar);
		progressLL = (LinearLayout) findViewById(R.id.web_view_progressBarLL);
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event)
	{
		if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack())
		{
			// TODO 更严谨地方式应该是通过使用类UrlQuerySanitizer来对URL的参数进行解析！！
			// TODO 更严谨地方式应该是通过使用类UrlQuerySanitizer来对URL的参数进行解析！！
			// TODO 更严谨地方式应该是通过使用类UrlQuerySanitizer来对URL的参数进行解析！！
			// TODO 更严谨地方式应该是通过使用类UrlQuerySanitizer来对URL的参数进行解析！！
			if (webView.getUrl().toLowerCase().contains("st=completed"))
			{
				setResult(Activity.RESULT_OK);
				WebPostActivity.this.finish();
			}
			else
				webView.goBack(); // goBack()表示返回WebView的上一页面
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
}
